﻿Public Class clsInhWysylka
    Inherits clsWysylka

#Region "Attributes"

    Private mvarPozycjeWysylki As Collection(Of clsPozycjeWysylki)
    Private mvarPozycjeWysylkiDelete As Collection(Of clsPozycjeWysylki)

    Private mvarPaczkiWysylki As Collection(Of clsInhPaczkiWysylki)
    Private mvarPaczkiWysylkiDelete As Collection(Of clsInhPaczkiWysylki)

    Private mvarPracownik As clsPracownik

#End Region

#Region "Properties"

    Public Property PozycjeWysylki() As Collection(Of clsPozycjeWysylki)
        Get
            Return mvarPozycjeWysylki
        End Get
        Set(ByVal value As Collection(Of clsPozycjeWysylki))
            mvarPozycjeWysylki = value
        End Set
    End Property

    Public Property PozycjeWysylkiDelete() As Collection(Of clsPozycjeWysylki)
        Get
            Return mvarPozycjeWysylkiDelete
        End Get
        Set(ByVal value As Collection(Of clsPozycjeWysylki))
            mvarPozycjeWysylkiDelete = value
        End Set
    End Property

    Public Property Pracownik As clsPracownik
        Get
            Return mvarPracownik
        End Get
        Set(ByVal value As clsPracownik)
            mvarPracownik = value
        End Set
    End Property

    Public Property PaczkiWysylki() As Collection(Of clsInhPaczkiWysylki)
        Get
            Return mvarPaczkiWysylki
        End Get
        Set(ByVal value As Collection(Of clsInhPaczkiWysylki))
            mvarPaczkiWysylki = value
        End Set
    End Property

    Public Property PaczkiWysylkiDelete() As Collection(Of clsInhPaczkiWysylki)
        Get
            Return mvarPaczkiWysylkiDelete
        End Get
        Set(ByVal value As Collection(Of clsInhPaczkiWysylki))
            mvarPaczkiWysylkiDelete = value
        End Set
    End Property

#End Region

#Region "Methods"

    Public Sub New()

        MyBase.New()

        mvarPozycjeWysylki = New Collection(Of clsPozycjeWysylki)
        mvarPozycjeWysylkiDelete = New Collection(Of clsPozycjeWysylki)

        mvarPaczkiWysylki = New Collection(Of clsInhPaczkiWysylki)
        mvarPaczkiWysylkiDelete = New Collection(Of clsInhPaczkiWysylki)

        mvarPracownik = New clsPracownik

    End Sub

    Public Sub New(ByVal Id As Integer, ByVal lvarDbHolder As clsDataBase)

        MyBase.New(Id, lvarDbHolder, VAR_ERROR_HANDLER)

        mvarPozycjeWysylki = New Collection(Of clsPozycjeWysylki)
        mvarPozycjeWysylkiDelete = New Collection(Of clsPozycjeWysylki)

        mvarPaczkiWysylki = New Collection(Of clsInhPaczkiWysylki)
        mvarPaczkiWysylkiDelete = New Collection(Of clsInhPaczkiWysylki)

        mvarPracownik = New clsPracownik(MyBase.PracownikID.ToString(), lvarDbHolder, VAR_ERROR_HANDLER)

        Dim lvarTabel As DataTable = clsWysylka.PobierzWszystkiePozycje(lvarDbHolder, VAR_ERROR_HANDLER, Id)
        If Not lvarTabel Is Nothing Then
            For Each lvarRow As DataRow In lvarTabel.Rows
                mvarPozycjeWysylki.Add(New clsPozycjeWysylki(CInt(lvarRow.Item("id")), lvarDbHolder, VAR_ERROR_HANDLER))
            Next
        End If

        Dim lvarTabel2 As DataTable = clsWysylka.PobierzWszystkiePaczki(lvarDbHolder, VAR_ERROR_HANDLER, Id)
        If Not lvarTabel2 Is Nothing Then
            For Each lvarRow As DataRow In lvarTabel2.Rows
                mvarPaczkiWysylki.Add(New clsInhPaczkiWysylki(CInt(lvarRow.Item("id")), lvarDbHolder))
            Next
        End If

    End Sub

    Public Overloads Sub Save(ByVal lvarDbHolder As clsDataBase)

        MyBase.Save(lvarDbHolder, VAR_ERROR_HANDLER)

        For Each lvarPozycja As clsPozycjeWysylki In mvarPozycjeWysylkiDelete
            lvarPozycja.Delete(lvarDbHolder, VAR_ERROR_HANDLER)
        Next

        For Each lvarPozycja As clsPozycjeWysylki In mvarPozycjeWysylki
            lvarPozycja.WysylkaId = MyBase.ID
            lvarPozycja.Ilosc = Replace(lvarPozycja.Ilosc, ",", ".")
            lvarPozycja.Save(lvarDbHolder, VAR_ERROR_HANDLER)
            lvarPozycja.Ilosc = Replace(lvarPozycja.Ilosc, ".", ",")
        Next

        For Each lvarPaczka As clsInhPaczkiWysylki In mvarPaczkiWysylkiDelete
            lvarPaczka.Delete(lvarDbHolder, VAR_ERROR_HANDLER)
        Next

        For Each lvarPaczka As clsInhPaczkiWysylki In mvarPaczkiWysylki
            lvarPaczka.WysylkaId = MyBase.ID
            lvarPaczka.Waga = Replace(lvarPaczka.Waga, ",", ".")
            lvarPaczka.Save(lvarDbHolder)
            lvarPaczka.Waga = Replace(lvarPaczka.Waga, ".", ",")
        Next

    End Sub

#End Region

End Class
